print("字符的编码##################################################start")
# 单个字符的编码
print(ord("你"))
print(ord("B"))
# 字符转换为字节
# 纯英文的str可以用ASCII编码为bytes，内容是一样的，
# 含有中文的str可以用UTF-8编码为bytes。
# 含有中文的str无法用ASCII编码，因为中文编码的范围超过了ASCII编码的范围，Python会报错
print("ABC".encode("ascii"))
print("中文".encode("utf-8"))
# print("中文".encode("ascii"))
# 反过来，如果我们从网络或磁盘上读取了字节流，那么读到的数据就是bytes。要把bytes变为str，就需要用decode()方法
print(b"ABC".decode("ascii"))
print(b"\xe4\xb8\xad\xe6\x96\x87".decode("utf-8"))
# 如果bytes中只有一小部分无效的字节，可以传入errors='ignore'忽略错误的字节
print(b"\xe4\xb8\xad\xff".decode('utf-8', errors="ignore"))
print("字符的编码##################################################end\n")


print("字符的长度##################################################start")
# len()函数计算的是str的字符数，如果换成bytes，len()函数就计算字节数
print(len("ABC"))
print(len("中文"))
print(len(b"ABC"))
print(len(b"\xe4\xb8\xad\xe6\x96\x87"))
print(len("中文".encode('utf-8')))
print("字符的长度##################################################end\n")